package com.breezelin.freshmarket.activities;

/**
 * Created by Breeze Lin
 * 2016/10/26 13:54
 * 1linyufeng1@gmail.com
 */

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;

import com.breezelin.freshmarket.R;

import java.util.ArrayList;
import java.util.HashMap;

/**
 * 显示网页的activity
 */
public class WebPageActivity extends AppCompatActivity implements View.OnClickListener {

	/**
	 * 网页地址
	 */
	private String url;
	/**
	 * 网页参数
	 */
	private HashMap<String, String> params;
	/**
	 * 标题栏
	 */
	private Toolbar toolbar;
	/**
	 * 网页视图
	 */
	private WebView webView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_web_page);

		initData();
		bindViews();
		getData();
	}

	/**
	 * 数据初始化
	 */
	private void initData() {
		// 取得传入的网页和参数
		Intent intent = getIntent();
		url = intent.getStringExtra("url");
		ArrayList<String> params = intent.getStringArrayListExtra("params");
		this.params = new HashMap<>();
		if (params != null) {
			for (String param : params) {
				String[] split = param.split("&");
				this.params.put(split[0], split[1]);
			}
		}
	}

	/**
	 * 视图控件绑定
	 */
	private void bindViews() {
		toolbar = (Toolbar) findViewById(R.id.toolbar);
		webView = (WebView) findViewById(R.id.web);

		// 设置标题栏
		setSupportActionBar(toolbar);
		// 返回键可用
		//noinspection ConstantConditions
		getSupportActionBar().setHomeButtonEnabled(true);
		getSupportActionBar().setDisplayHomeAsUpEnabled(true);
		toolbar.setNavigationOnClickListener(this);

		// 设置网页控件
		// TODO: 2016/10/26 网页控件基本设置
		WebSettings settings = webView.getSettings();
		// 允许访问ContentProvider
		settings.setAllowContentAccess(true);
		// 允许缓存（Android的缓存API）
		settings.setAppCacheEnabled(true);
		// 允许缩放
		settings.setSupportZoom(true);
		// 允许html中宽视图tag调整
		settings.setUseWideViewPort(true);
		// 允许JS回调
		settings.setJavaScriptEnabled(true);
	}

	/**
	 * 获取数据
	 */
	private void getData() {
		// 加载网页
		webView.loadUrl(url, params);
		// TODO: 2016/10/26 其他加载网页同时的操作
	}

	/**
	 * 返回操作
	 */
	private void back() {
		// TODO: 2016/10/26 返回操作，优先级：停止加载、网页回退、返回上级页面
	}

	@Override
	public void onClick(View v) {
		// 返回按钮回调
		back();
	}

	@Override
	public void onBackPressed() {
		super.onBackPressed();
		back();
	}
}
